PLDs are typically made up of a plurality of input/output (I/O) resources, a plurality of interconnect resources, a plurality of logic resources, and a plurality of memory resources. PLDs may also contain other resources, such as a plurality of digital signal processing blocks (“DSPs”) and other embedded processing resources. The logic resources typically include logic elements (“LEs”) grouped in clusters that are sometimes referred to as logic array blocks (“LABs”). The memory resources typically include embedded memory blocks (EMBs) of various sizes.
Modern PLDs include an increasing number of EMBs that may be used as on-chip memories. While the EMBs are used frequently in PLDs, the EMBs can be utilized more efficiently than they currently are to improve the PLDs.